Object Graphs with Ownership Domains: An Empirical Study
نویسندگان
چکیده
Researchers have proposed many ownership type systems but reported limited experience with most of them on real object-oriented code. Only a few systems have been implemented, and there have been few substantial case studies done with those systems. In order to better empirically evaluate ownership type systems, we have therefore conducted a number of case studies applying the Ownership Domains type system to programs at a larger scale. To facilitate the study of legacy code, we reimplemented Ownership Domains using available language support for annotations. After annotating and typechecking a range of object-oriented systems, we extracted global, hierarchical, Ownership Object Graphs (OOGs) using static analysis. OOGs provide an abstracted view that is consistent with programmer design intent, compared to flat object graphs that can be extracted without the benefit of the ownership annotations. An OOG also visualizes the system’s ownership structure and helps developers refine the annotations they add to better express the system’s design. This paper shares our observations from studying the annotations and the extracted OOGs across several subject systems. We compute metrics on the annotations and on the extracted OOGs, to gain insights into the ownership relationships latent within object-oriented code and to evaluate the effectiveness of the abstraction mechanisms in OOGs.
منابع مشابه
Simple Loose Ownership Domains
Ownership Domains generalize ownership types. They support programming patterns like iterators that are not possible with ordinary ownership types. However, they are still too restrictive for cases in which an object X wants to access the public domains of an arbitrary number of other objects, which often happens in observer scenarios. To overcome this restriction, we developed so-called loose ...
متن کاملA Parameterized Type System for Simple Loose Ownership Domains
Ownership Domains generalize ownership types. They support programming patterns such as iterators that are not possible with ordinary ownership types. However, they are still too restrictive for cases in which an object X wants to access the public domains of an arbitrary number of other objects, which often happens in observer scenarios. To overcome this restriction, we develop so-called loose...
متن کاملAn Empirical Analysis of Vertical Integration Determinants among Peasant Farmers in Northern Algeria
This study aims to analyze the determinants of vertical integration (ownership and contract-ing) among peasant farmers in Northern Algeria. The choice of asset control is between ownership and a simple contracting. Thus, the integration of vertical stages of agricultural produc-tion leads to higher gross margins, influences the choice of marketing and supply channels, and improves market partic...
متن کاملSimple Ownership Types for Object Containment
Containment of objects is a natural concept that has been poorly supported in object-oriented programming languages. For a prede ned set of ownership contexts, this paper presents a type system that enforces certain containment relationships for run-time objects. A xed ordering relationship is presumed between the owners. The formalisation of ownership types has developed from our work with exi...
متن کاملOwnership Domains: Separating Aliasing Policy from Mechanism
Ownership types promise to provide a practical mechanism for enforcing stronger encapsulation by controlling aliasing in objectoriented languages. However, previous ownership type proposals have tied the aliasing policy of a system to the mechanism of ownership. As a result, these proposals are too weak to express many important aliasing constraints, yet also so restrictive that they prohibit m...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2013